package io.renren.modules.medical.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;

import io.renren.common.validator.group.AddGroup;
import io.renren.common.validator.group.UpdateGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;

/**
 * 
 * 
 * @author luosheng
 * @email luoshengshuai@foxmail.com
 * @date 2023-05-22 11:03:36
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("questionnaire_survey")
public class QuestionnaireSurveyEntity extends BaseEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 患者Id
	 */
	@NotNull(message = "修改时患者id不能为null", groups = {UpdateGroup.class})
	@Null(message = "添加或修改时患者Id只能为null", groups = {AddGroup.class})
	private Long patientInfoId;
	/**
	 * 姓名
	 */
	@NotBlank(message = "添加或修改时姓名不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private String name;
	/**
	 * 身份证
	 */
	@NotBlank(message = "添加或修改时身份证不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private String idNumber;
	/**
	 * 手机号
	 */
	@NotBlank(message = "添加或修改时手机号不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private String phoneNumber;
	/**
	 * 静息痛
	 */
	@NotNull(message = "添加或修改时静息痛不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer restPain;
	/**
	 * 运动痛
	 */
	@NotNull(message = "添加或修改时运动痛不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer movePain;
	/**
	 * 天气变化时疼痛
	 */
	@NotNull(message = "添加或修改时天气变化时疼痛不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer weatherPain;
	/**
	 * 关节畏寒
	 */
	@NotNull(message = "添加或修改时关节畏寒不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer jointCold;
	/**
	 * 关节肿胀程度
	 */
	@NotNull(message = "添加或修改时关节肿胀程度不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer jointSwell;
	/**
	 * 局部皮温
	 */
	@NotNull(message = "添加或修改时局部皮温不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer skinTemperature;
	/**
	 * 晨僵时间
	 */
	@NotNull(message = "添加或修改时晨僵时间不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer morningStiffnessTime;
	/**
	 * 蹲起
	 */
	@NotNull(message = "添加或修改时蹲起不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer squating;
	/**
	 * 上下楼梯
	 */
	@NotNull(message = "添加或修改时上下楼梯不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer climbingStairs;
	/**
	 * 一次性站立时间
	 */
	@NotNull(message = "添加或修改时一次性站立时间不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer standingTime;
	/**
	 * 一次性步行距离
	 */
	@NotNull(message = "添加或修改时一次性步行距离不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer walkingDistance;
	/**
	 * 需要助行器械
	 */
	@NotNull(message = "添加或修改时需要助行器械不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer walkingAids;
	/**
	 * 做家务
	 */
	@NotNull(message = "添加或修改时做家务不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer doingChores;
	/**
	 * 大腿周径
	 */
	@NotNull(message = "添加或修改时大腿周径不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Float thighCircu;
	/**
	 * 膝关节活动度
	 */
	@NotNull(message = "添加或修改时膝关节活动度不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer kneeMotion;
	/**
	 * 膝关节ROM测试
	 */
	@NotNull(message = "添加或修改时膝关节ROM测试不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer jointTesting;
	/**
	 * 内侧胫股关节间隙压痛
	 */
	@NotNull(message = "添加或修改时内侧胫股关节间隙压痛不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer medialTibia;
	/**
	 * 外侧胫股关节间隙压痛
	 */
	@NotNull(message = "添加或修改时外侧胫股关节间隙压痛不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer medicalFibula;
	/**
	 * 麦氏征
	 */
	@NotNull(message = "添加或修改时麦氏征不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer maishiSymptoms;
	/**
	 * 过申实验
	 */
	@NotNull(message = "添加或修改时过申实验不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer overbendingTest;
	/**
	 * 过屈试验
	 */
	@NotNull(message = "添加或修改时过屈试验不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer hyperextensionTest;
	/**
	 * Beighton评分
	 */
	@NotNull(message = "添加或修改时Beighton评分不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer beightonScore;
	/**
	 * 关节侧别[0：左、1：右]
	 */
	@NotNull(message = "添加或修改时关节侧别不能为Null", groups = {AddGroup.class, UpdateGroup.class})
	private Integer bodySide;

}
